<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>ARWrapper: ARController Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ARWrapper
   </div>
   <div id="projectbrief">Provides a C++ wrapper around ARToolKit and exposes a C and JNI API</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="class_a_r_controller-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ARController Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Wrapper for ARToolKit functionality.  
 <a href="class_a_r_controller.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_a_r_controller_8h_source.html">ARController.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac6bad81c8658f7556d67abf920a85d0e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac6bad81c8658f7556d67abf920a85d0e">ARController</a> ()</td></tr>
<tr class="memdesc:ac6bad81c8658f7556d67abf920a85d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#ac6bad81c8658f7556d67abf920a85d0e">More...</a><br/></td></tr>
<tr class="separator:ac6bad81c8658f7556d67abf920a85d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7041c62d2f0eda246ecce703028ea90c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a7041c62d2f0eda246ecce703028ea90c">~ARController</a> ()</td></tr>
<tr class="memdesc:a7041c62d2f0eda246ecce703028ea90c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a7041c62d2f0eda246ecce703028ea90c">More...</a><br/></td></tr>
<tr class="separator:a7041c62d2f0eda246ecce703028ea90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9def91f09d79a2f0e8a5aed2e4756f4"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac9def91f09d79a2f0e8a5aed2e4756f4">getARToolKitVersion</a> ()</td></tr>
<tr class="memdesc:ac9def91f09d79a2f0e8a5aed2e4756f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string containing the ARToolKit version, such as "4.5.1".  <a href="#ac9def91f09d79a2f0e8a5aed2e4756f4">More...</a><br/></td></tr>
<tr class="separator:ac9def91f09d79a2f0e8a5aed2e4756f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3eef04a6533f0eb8b44e906cc2acb7b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ae3eef04a6533f0eb8b44e906cc2acb7b">getError</a> ()</td></tr>
<tr class="separator:ae3eef04a6533f0eb8b44e906cc2acb7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3285a4ebb27a47d45d64428969e30ea4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a3285a4ebb27a47d45d64428969e30ea4">initialiseBase</a> (const int patternSize=AR_PATT_SIZE1, const int patternCountMax=AR_PATT_NUM_MAX)</td></tr>
<tr class="memdesc:a3285a4ebb27a47d45d64428969e30ea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start marker management so markers can be added and removed.  <a href="#a3285a4ebb27a47d45d64428969e30ea4">More...</a><br/></td></tr>
<tr class="separator:a3285a4ebb27a47d45d64428969e30ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae91364105968f34d3a79577237cbd5af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ae91364105968f34d3a79577237cbd5af">canAddMarker</a> ()</td></tr>
<tr class="memdesc:ae91364105968f34d3a79577237cbd5af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Report whether a marker can be added.  <a href="#ae91364105968f34d3a79577237cbd5af">More...</a><br/></td></tr>
<tr class="separator:ae91364105968f34d3a79577237cbd5af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab63641c43919f8297ba38a0ee9ce3253"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ab63641c43919f8297ba38a0ee9ce3253">setProjectionNearPlane</a> (const ARdouble <a class="el" href="class_a_r_controller.html#a6107f783d52887d655bd571ac906421c">projectionNearPlane</a>)</td></tr>
<tr class="separator:ab63641c43919f8297ba38a0ee9ce3253"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15aa6c50cd138d4131bbed2517498927"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a15aa6c50cd138d4131bbed2517498927">setProjectionFarPlane</a> (const ARdouble <a class="el" href="class_a_r_controller.html#a290ba1cd38c6a7e38104af03cfe33c88">projectionFarPlane</a>)</td></tr>
<tr class="separator:a15aa6c50cd138d4131bbed2517498927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6107f783d52887d655bd571ac906421c"><td class="memItemLeft" align="right" valign="top">ARdouble&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a6107f783d52887d655bd571ac906421c">projectionNearPlane</a> (void)</td></tr>
<tr class="separator:a6107f783d52887d655bd571ac906421c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290ba1cd38c6a7e38104af03cfe33c88"><td class="memItemLeft" align="right" valign="top">ARdouble&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a290ba1cd38c6a7e38104af03cfe33c88">projectionFarPlane</a> (void)</td></tr>
<tr class="separator:a290ba1cd38c6a7e38104af03cfe33c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a418d8aaf7e0561d1ccfffc7d35a840cf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a418d8aaf7e0561d1ccfffc7d35a840cf">startRunning</a> (const char *vconf, const char *cparaName, const char *cparaBuff, const long cparaBuffLen)</td></tr>
<tr class="memdesc:a418d8aaf7e0561d1ccfffc7d35a840cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start video capture and marker detection.  <a href="#a418d8aaf7e0561d1ccfffc7d35a840cf">More...</a><br/></td></tr>
<tr class="separator:a418d8aaf7e0561d1ccfffc7d35a840cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd0732b11285bc113134d1b891a361f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#abd0732b11285bc113134d1b891a361f2">startRunningStereo</a> (const char *vconfL, const char *cparaNameL, const char *cparaBuffL, const long cparaBuffLenL, const char *vconfR, const char *cparaNameR, const char *cparaBuffR, const long cparaBuffLenR, const char *transL2RName, const char *transL2RBuff, const long transL2RBuffLen)</td></tr>
<tr class="memdesc:abd0732b11285bc113134d1b891a361f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start stereo video capture and marker detection.  <a href="#abd0732b11285bc113134d1b891a361f2">More...</a><br/></td></tr>
<tr class="separator:abd0732b11285bc113134d1b891a361f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af395f42727daace4e25f3e26a1d77c33"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#af395f42727daace4e25f3e26a1d77c33">videoAcceptImage</a> (JNIEnv *env, jobject obj, const int videoSourceIndex, jbyteArray pinArray, jint width, jint height, jint cameraIndex, jboolean cameraIsFrontFacing)</td></tr>
<tr class="separator:af395f42727daace4e25f3e26a1d77c33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae504ee5e5ac8dea6f044f7f96f472cdb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ae504ee5e5ac8dea6f044f7f96f472cdb">videoParameters</a> (const int videoSourceIndex, int *width, int *height, AR_PIXEL_FORMAT *pixelFormat)</td></tr>
<tr class="memdesc:ae504ee5e5ac8dea6f044f7f96f472cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports width, height and pixel format of a video source.  <a href="#ae504ee5e5ac8dea6f044f7f96f472cdb">More...</a><br/></td></tr>
<tr class="separator:ae504ee5e5ac8dea6f044f7f96f472cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f83904a7c899ebb9b178c183d413d23"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a5f83904a7c899ebb9b178c183d413d23">isRunning</a> ()</td></tr>
<tr class="memdesc:a5f83904a7c899ebb9b178c183d413d23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if video capture and marker detection is running.  <a href="#a5f83904a7c899ebb9b178c183d413d23">More...</a><br/></td></tr>
<tr class="separator:a5f83904a7c899ebb9b178c183d413d23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a889dbbe581e771d1f4f2e28fad3f686b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a889dbbe581e771d1f4f2e28fad3f686b">stopRunning</a> ()</td></tr>
<tr class="memdesc:a889dbbe581e771d1f4f2e28fad3f686b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video capture and marker detection stops, but markers are still valid and can be configured.  <a href="#a889dbbe581e771d1f4f2e28fad3f686b">More...</a><br/></td></tr>
<tr class="separator:a889dbbe581e771d1f4f2e28fad3f686b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3aad1d57eb54ef10ecdd57562fad461"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac3aad1d57eb54ef10ecdd57562fad461">shutdown</a> ()</td></tr>
<tr class="memdesc:ac3aad1d57eb54ef10ecdd57562fad461"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop, if running.  <a href="#ac3aad1d57eb54ef10ecdd57562fad461">More...</a><br/></td></tr>
<tr class="separator:ac3aad1d57eb54ef10ecdd57562fad461"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bd0e559ff4189242b55bea8c7c3fd5f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a1bd0e559ff4189242b55bea8c7c3fd5f">getProjectionMatrix</a> (const int videoSourceIndex, ARdouble proj[16])</td></tr>
<tr class="memdesc:a1bd0e559ff4189242b55bea8c7c3fd5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the provided array with the ARToolKit projection matrix.  <a href="#a1bd0e559ff4189242b55bea8c7c3fd5f">More...</a><br/></td></tr>
<tr class="separator:a1bd0e559ff4189242b55bea8c7c3fd5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa98c9c62aac1dcc693f8b523a1408a03"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#aa98c9c62aac1dcc693f8b523a1408a03">addMarker</a> (const char *cfg)</td></tr>
<tr class="memdesc:aa98c9c62aac1dcc693f8b523a1408a03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a marker as specified in the given configuration string.  <a href="#aa98c9c62aac1dcc693f8b523a1408a03">More...</a><br/></td></tr>
<tr class="separator:aa98c9c62aac1dcc693f8b523a1408a03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a837c8cac6b5f8998d5d91bb9ebc12555"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a837c8cac6b5f8998d5d91bb9ebc12555">removeMarker</a> (int UID)</td></tr>
<tr class="memdesc:a837c8cac6b5f8998d5d91bb9ebc12555"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the marker with the given ID.  <a href="#a837c8cac6b5f8998d5d91bb9ebc12555">More...</a><br/></td></tr>
<tr class="separator:a837c8cac6b5f8998d5d91bb9ebc12555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcb3dddd6987c1c774ab2a8f3d2b50db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#adcb3dddd6987c1c774ab2a8f3d2b50db">removeAllMarkers</a> ()</td></tr>
<tr class="memdesc:adcb3dddd6987c1c774ab2a8f3d2b50db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the collection of markers.  <a href="#adcb3dddd6987c1c774ab2a8f3d2b50db">More...</a><br/></td></tr>
<tr class="separator:adcb3dddd6987c1c774ab2a8f3d2b50db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f5722eb08efd97bfc452659110d29e0"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a9f5722eb08efd97bfc452659110d29e0">countMarkers</a> ()</td></tr>
<tr class="memdesc:a9f5722eb08efd97bfc452659110d29e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of currently loaded markers.  <a href="#a9f5722eb08efd97bfc452659110d29e0">More...</a><br/></td></tr>
<tr class="separator:a9f5722eb08efd97bfc452659110d29e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a586656329ba632f9f84cee4045fc6ff3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_r_marker.html">ARMarker</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a586656329ba632f9f84cee4045fc6ff3">findMarker</a> (int UID)</td></tr>
<tr class="memdesc:a586656329ba632f9f84cee4045fc6ff3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the collection of markers for the given ID.  <a href="#a586656329ba632f9f84cee4045fc6ff3">More...</a><br/></td></tr>
<tr class="separator:a586656329ba632f9f84cee4045fc6ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac26f04fb95670b8d2023f52f69df55ac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac26f04fb95670b8d2023f52f69df55ac">capture</a> ()</td></tr>
<tr class="separator:ac26f04fb95670b8d2023f52f69df55ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a39007194f7a2dd42e81f393cf588d8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a3a39007194f7a2dd42e81f393cf588d8">updateTexture</a> (const int videoSourceIndex, <a class="el" href="struct_color.html">Color</a> *buffer)</td></tr>
<tr class="memdesc:a3a39007194f7a2dd42e81f393cf588d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asks the video source to push the most recent frame into the passed-in buffer.  <a href="#a3a39007194f7a2dd42e81f393cf588d8">More...</a><br/></td></tr>
<tr class="separator:a3a39007194f7a2dd42e81f393cf588d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac580d4ef4f76a38b6dd06322ae645e34"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac580d4ef4f76a38b6dd06322ae645e34">updateTexture32</a> (const int videoSourceIndex, uint32_t *buffer)</td></tr>
<tr class="memdesc:ac580d4ef4f76a38b6dd06322ae645e34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asks the video source to push the most recent frame into the passed-in buffer.  <a href="#ac580d4ef4f76a38b6dd06322ae645e34">More...</a><br/></td></tr>
<tr class="separator:ac580d4ef4f76a38b6dd06322ae645e34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d6c658c56c5c839a77e03dd85f1e2d6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a5d6c658c56c5c839a77e03dd85f1e2d6">updateTextureGL</a> (const int videoSourceIndex, const int textureID)</td></tr>
<tr class="memdesc:a5d6c658c56c5c839a77e03dd85f1e2d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asks the video source to push the most recent frame into the OpenGL texture with the passed-in ID/name.  <a href="#a5d6c658c56c5c839a77e03dd85f1e2d6">More...</a><br/></td></tr>
<tr class="separator:a5d6c658c56c5c839a77e03dd85f1e2d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac726b34aac45206f4608e9a15875db82"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac726b34aac45206f4608e9a15875db82">update</a> ()</td></tr>
<tr class="memdesc:ac726b34aac45206f4608e9a15875db82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs marker detection and updates all markers.  <a href="#ac726b34aac45206f4608e9a15875db82">More...</a><br/></td></tr>
<tr class="separator:ac726b34aac45206f4608e9a15875db82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4287d63e3291a4bf0d6a24387895ea2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a4287d63e3291a4bf0d6a24387895ea2d">setDebugMode</a> (bool debug)</td></tr>
<tr class="memdesc:a4287d63e3291a4bf0d6a24387895ea2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables debug mode in the tracker.  <a href="#a4287d63e3291a4bf0d6a24387895ea2d">More...</a><br/></td></tr>
<tr class="separator:a4287d63e3291a4bf0d6a24387895ea2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac385b8f5be31e172a34e9aef3f3ac82a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac385b8f5be31e172a34e9aef3f3ac82a">getDebugMode</a> () const </td></tr>
<tr class="memdesc:ac385b8f5be31e172a34e9aef3f3ac82a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether debug mode is currently enabled.  <a href="#ac385b8f5be31e172a34e9aef3f3ac82a">More...</a><br/></td></tr>
<tr class="separator:ac385b8f5be31e172a34e9aef3f3ac82a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab80ab5239c37941427bcc51e382af178"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ab80ab5239c37941427bcc51e382af178">setImageProcMode</a> (int mode)</td></tr>
<tr class="separator:ab80ab5239c37941427bcc51e382af178"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa51e7898c99e5fac6658a5d6e594bce6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#aa51e7898c99e5fac6658a5d6e594bce6">getImageProcMode</a> () const </td></tr>
<tr class="separator:aa51e7898c99e5fac6658a5d6e594bce6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c20dfcb712449a58bdc71c50b5ab63b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a2c20dfcb712449a58bdc71c50b5ab63b">setThreshold</a> (int thresh)</td></tr>
<tr class="memdesc:a2c20dfcb712449a58bdc71c50b5ab63b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the threshold value used for image binarization.  <a href="#a2c20dfcb712449a58bdc71c50b5ab63b">More...</a><br/></td></tr>
<tr class="separator:a2c20dfcb712449a58bdc71c50b5ab63b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7106f4c7c2d4e4691900fdf2dd4a7dd6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a7106f4c7c2d4e4691900fdf2dd4a7dd6">getThreshold</a> () const </td></tr>
<tr class="memdesc:a7106f4c7c2d4e4691900fdf2dd4a7dd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current threshold value used for image binarization.  <a href="#a7106f4c7c2d4e4691900fdf2dd4a7dd6">More...</a><br/></td></tr>
<tr class="separator:a7106f4c7c2d4e4691900fdf2dd4a7dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b18e16d0c7d694b495614a332c9ae9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a9b18e16d0c7d694b495614a332c9ae9e">setThresholdMode</a> (int mode)</td></tr>
<tr class="memdesc:a9b18e16d0c7d694b495614a332c9ae9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the thresholding mode to use.  <a href="#a9b18e16d0c7d694b495614a332c9ae9e">More...</a><br/></td></tr>
<tr class="separator:a9b18e16d0c7d694b495614a332c9ae9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac873cfc23a294a6ae6d339c946391e36"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ac873cfc23a294a6ae6d339c946391e36">getThresholdMode</a> () const </td></tr>
<tr class="memdesc:ac873cfc23a294a6ae6d339c946391e36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current thresholding mode.  <a href="#ac873cfc23a294a6ae6d339c946391e36">More...</a><br/></td></tr>
<tr class="separator:ac873cfc23a294a6ae6d339c946391e36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6ce742333a35487de8fa2a8ae5e507f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ae6ce742333a35487de8fa2a8ae5e507f">setLabelingMode</a> (int mode)</td></tr>
<tr class="memdesc:ae6ce742333a35487de8fa2a8ae5e507f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the labeling mode to use.  <a href="#ae6ce742333a35487de8fa2a8ae5e507f">More...</a><br/></td></tr>
<tr class="separator:ae6ce742333a35487de8fa2a8ae5e507f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fa24578408ae5a2d1b4cb215b5c5c32"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a9fa24578408ae5a2d1b4cb215b5c5c32">getLabelingMode</a> () const </td></tr>
<tr class="memdesc:a9fa24578408ae5a2d1b4cb215b5c5c32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current labeling mode.  <a href="#a9fa24578408ae5a2d1b4cb215b5c5c32">More...</a><br/></td></tr>
<tr class="separator:a9fa24578408ae5a2d1b4cb215b5c5c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa25c5bef4b35ea189b1c5b3d82a48812"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#aa25c5bef4b35ea189b1c5b3d82a48812">setPatternDetectionMode</a> (int mode)</td></tr>
<tr class="separator:aa25c5bef4b35ea189b1c5b3d82a48812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30a76aa6929b088f8a785593bad08d9e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a30a76aa6929b088f8a785593bad08d9e">getPatternDetectionMode</a> () const </td></tr>
<tr class="separator:a30a76aa6929b088f8a785593bad08d9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad346222158ad690f071420d5fe1b5e4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ad346222158ad690f071420d5fe1b5e4a">setPattRatio</a> (float ratio)</td></tr>
<tr class="separator:ad346222158ad690f071420d5fe1b5e4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17c3ba43ab7ffd6713f30b699539cbf1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a17c3ba43ab7ffd6713f30b699539cbf1">getPattRatio</a> () const </td></tr>
<tr class="separator:a17c3ba43ab7ffd6713f30b699539cbf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38ae06d947f7995156bcb30155d01d29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a38ae06d947f7995156bcb30155d01d29">setMatrixCodeType</a> (int type)</td></tr>
<tr class="separator:a38ae06d947f7995156bcb30155d01d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fc4ed6f4135d4cb07b2de19e820b418"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a2fc4ed6f4135d4cb07b2de19e820b418">getMatrixCodeType</a> () const </td></tr>
<tr class="separator:a2fc4ed6f4135d4cb07b2de19e820b418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abceb36df8bacdaceaab8b234a3c56f29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#abceb36df8bacdaceaab8b234a3c56f29">setNFTMultiMode</a> (bool on)</td></tr>
<tr class="separator:abceb36df8bacdaceaab8b234a3c56f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1de2d0e95a6827a4bcbedbc6e24df079"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a1de2d0e95a6827a4bcbedbc6e24df079">getNFTMultiMode</a> () const </td></tr>
<tr class="separator:a1de2d0e95a6827a4bcbedbc6e24df079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8278aebc7233d808ce3742462fa4da71"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a8278aebc7233d808ce3742462fa4da71">updateDebugTexture</a> (const int videoSourceIndex, <a class="el" href="struct_color.html">Color</a> *buffer)</td></tr>
<tr class="memdesc:a8278aebc7233d808ce3742462fa4da71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the provided color buffer with the current contents of the debug image.  <a href="#a8278aebc7233d808ce3742462fa4da71">More...</a><br/></td></tr>
<tr class="separator:a8278aebc7233d808ce3742462fa4da71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc7b12b0b3fa9a1ee1fa638abe21030"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a6bc7b12b0b3fa9a1ee1fa638abe21030">updateDebugTexture32</a> (const int videoSourceIndex, uint32_t *buffer)</td></tr>
<tr class="memdesc:a6bc7b12b0b3fa9a1ee1fa638abe21030"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the provided buffer with the current contents of the debug image.  <a href="#a6bc7b12b0b3fa9a1ee1fa638abe21030">More...</a><br/></td></tr>
<tr class="separator:a6bc7b12b0b3fa9a1ee1fa638abe21030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92b12f11df6aa75041ff1c4a2a4095b4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a92b12f11df6aa75041ff1c4a2a4095b4">getPatternImage</a> (int patternID, <a class="el" href="struct_color.html">Color</a> *buffer)</td></tr>
<tr class="memdesc:a92b12f11df6aa75041ff1c4a2a4095b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the provided color buffer with the image for the specified pattern.  <a href="#a92b12f11df6aa75041ff1c4a2a4095b4">More...</a><br/></td></tr>
<tr class="separator:a92b12f11df6aa75041ff1c4a2a4095b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3982e9c73c04403940f6de22dceafbbc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a3982e9c73c04403940f6de22dceafbbc">loadOpticalParams</a> (const char *optical_param_name, const char *optical_param_buff, const long optical_param_buffLen, ARdouble *fovy_p, ARdouble *aspect_p, ARdouble m[16], ARdouble p[16])</td></tr>
<tr class="memdesc:a3982e9c73c04403940f6de22dceafbbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads an optical parameters structure from file or from buffer.  <a href="#a3982e9c73c04403940f6de22dceafbbc">More...</a><br/></td></tr>
<tr class="separator:a3982e9c73c04403940f6de22dceafbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a33e443e6b1d71770bcc2ed22f907bf54"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a33e443e6b1d71770bcc2ed22f907bf54">logv</a> (const int logLevel, const char *format,...)</td></tr>
<tr class="separator:a33e443e6b1d71770bcc2ed22f907bf54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae455f8a676ce0492c396d955ee7a108f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#ae455f8a676ce0492c396d955ee7a108f">logv</a> (const char *msg,...)</td></tr>
<tr class="memdesc:ae455f8a676ce0492c396d955ee7a108f"><td class="mdescLeft">&#160;</td><td class="mdescRight">If a log callback has been set, then this passes the formatted message to it.  <a href="#ae455f8a676ce0492c396d955ee7a108f">More...</a><br/></td></tr>
<tr class="separator:ae455f8a676ce0492c396d955ee7a108f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a54f0849f06076cd96311c48f25c2b58b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="_platform_8h.html#a4d175bf9baf646649f851fc1508bb4ef">PFN_LOGCALLBACK</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_r_controller.html#a54f0849f06076cd96311c48f25c2b58b">logCallback</a> = NULL</td></tr>
<tr class="memdesc:a54f0849f06076cd96311c48f25c2b58b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback where log messages are passed to.  <a href="#a54f0849f06076cd96311c48f25c2b58b">More...</a><br/></td></tr>
<tr class="separator:a54f0849f06076cd96311c48f25c2b58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Wrapper for ARToolKit functionality. </p>
<p>This class handles ARToolKit initialisation, updates, and cleanup. It maintains a collection of markers, providing methods to add and remove them. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac6bad81c8658f7556d67abf920a85d0e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ARController::ARController </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="a7041c62d2f0eda246ecce703028ea90c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ARController::~ARController </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa98c9c62aac1dcc693f8b523a1408a03"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::addMarker </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cfg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a marker as specified in the given configuration string. </p>
<p>The format of the string can be one of:</p>
<ul>
<li>Single marker: "single;pattern_file;pattern_width", e.g. "single;data/hiro.patt;80"</li>
<li>Multi marker: "multi;config_file", e.g. "multi;data/multi/marker.dat"</li>
<li>NFT marker: "nft;nft_dataset_pathname", e.g. "nft;gibraltar"</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cfg</td><td>The configuration string </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The UID of the marker instantiated based on the configuration string, or -1 if an error occurred. </dd></dl>

</div>
</div>
<a class="anchor" id="ae91364105968f34d3a79577237cbd5af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::canAddMarker </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Report whether a marker can be added. </p>
<p>Markers can be added once basic initialisation has occurred. </p>
<dl class="section return"><dt>Returns</dt><dd>true if adding a marker is currently possible </dd></dl>

</div>
</div>
<a class="anchor" id="ac26f04fb95670b8d2023f52f69df55ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::capture </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9f5722eb08efd97bfc452659110d29e0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int ARController::countMarkers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the number of currently loaded markers. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of currently loaded markers. </dd></dl>

</div>
</div>
<a class="anchor" id="a586656329ba632f9f84cee4045fc6ff3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_a_r_marker.html">ARMarker</a> * ARController::findMarker </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>UID</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Searches the collection of markers for the given ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">UID</td><td>The UID of the marker to find </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The found marker, or NULL if no matching ID was found. </dd></dl>

</div>
</div>
<a class="anchor" id="ac9def91f09d79a2f0e8a5aed2e4756f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * ARController::getARToolKitVersion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a string containing the ARToolKit version, such as "4.5.1". </p>
<dl class="section return"><dt>Returns</dt><dd>The ARToolKit version </dd></dl>

</div>
</div>
<a class="anchor" id="ac385b8f5be31e172a34e9aef3f3ac82a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::getDebugMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns whether debug mode is currently enabled. </p>
<dl class="section return"><dt>Returns</dt><dd>true when debug mode is enabled, false when debug mode is disabled </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#a4287d63e3291a4bf0d6a24387895ea2d" title="Enables or disables debug mode in the tracker.">setDebugMode()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae3eef04a6533f0eb8b44e906cc2acb7b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aa51e7898c99e5fac6658a5d6e594bce6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getImageProcMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9fa24578408ae5a2d1b4cb215b5c5c32"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getLabelingMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current labeling mode. </p>
<dl class="section return"><dt>Returns</dt><dd>The current labeling mode. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#ae6ce742333a35487de8fa2a8ae5e507f" title="Sets the labeling mode to use.">setLabelingMode()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2fc4ed6f4135d4cb07b2de19e820b418"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getMatrixCodeType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1de2d0e95a6827a4bcbedbc6e24df079"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::getNFTMultiMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a30a76aa6929b088f8a785593bad08d9e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getPatternDetectionMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a92b12f11df6aa75041ff1c4a2a4095b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::getPatternImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>patternID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_color.html">Color</a> *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Populates the provided color buffer with the image for the specified pattern. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">patternID</td><td>The ARToolKit pattern ID to use </td></tr>
    <tr><td class="paramname">buffer</td><td>The color buffer to populate </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, false if an error occurred </dd></dl>

</div>
</div>
<a class="anchor" id="a17c3ba43ab7ffd6713f30b699539cbf1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ARController::getPattRatio </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1bd0e559ff4189242b55bea8c7c3fd5f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::getProjectionMatrix </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ARdouble&#160;</td>
          <td class="paramname"><em>proj</em>[16]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Populates the provided array with the ARToolKit projection matrix. </p>
<p>The projection matrix is computed once the video source has been opened, and camera parameters become available. If this method is called before this happens, then the passed array is untouched and the method will return false. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">proj</td><td>Array to populate with OpenGL compatible projection matrix </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the projection matrix has been computed, otherwise false </dd></dl>

</div>
</div>
<a class="anchor" id="a7106f4c7c2d4e4691900fdf2dd4a7dd6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getThreshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current threshold value used for image binarization. </p>
<dl class="section return"><dt>Returns</dt><dd>The current threshold value </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#a2c20dfcb712449a58bdc71c50b5ab63b" title="Sets the threshold value used for image binarization.">setThreshold()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ac873cfc23a294a6ae6d339c946391e36"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::getThresholdMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current thresholding mode. </p>
<dl class="section return"><dt>Returns</dt><dd>The current thresholding mode. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#a9b18e16d0c7d694b495614a332c9ae9e" title="Sets the thresholding mode to use.">setThresholdMode()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a3285a4ebb27a47d45d64428969e30ea4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::initialiseBase </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>patternSize</em> = <code>AR_PATT_SIZE1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>patternCountMax</em> = <code>AR_PATT_NUM_MAX</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start marker management so markers can be added and removed. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">patternSize</td><td>For any square template (pattern) markers, the number of rows and columns in the template. </td></tr>
    <tr><td class="paramname">patternCountMax</td><td>For any square template (pattern) markers, the maximum number of markers that may be loaded for a single matching pass. Must be &gt; 0. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if initialisation was OK, false if an error occured. </dd></dl>

</div>
</div>
<a class="anchor" id="a5f83904a7c899ebb9b178c183d413d23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::isRunning </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if video capture and marker detection is running. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the video source(s) is/are open and returning frames, otherwise false. </dd></dl>

</div>
</div>
<a class="anchor" id="a3982e9c73c04403940f6de22dceafbbc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::loadOpticalParams </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>optical_param_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>optical_param_buff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>optical_param_buffLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ARdouble *&#160;</td>
          <td class="paramname"><em>fovy_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ARdouble *&#160;</td>
          <td class="paramname"><em>aspect_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ARdouble&#160;</td>
          <td class="paramname"><em>m</em>[16], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ARdouble&#160;</td>
          <td class="paramname"><em>p</em>[16]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads an optical parameters structure from file or from buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">optical_param_name</td><td>If supplied, points to a buffer specifying the path to the optical parameters file (as generated by the calib_optical utility.) </td></tr>
    <tr><td class="paramname">optical_param_buff</td><td>If optical_param_name is NULL, the contents of this buffer will be interpreted as containing the contents of an optical parameters file. </td></tr>
    <tr><td class="paramname">optical_param_buffLen</td><td>Length of the buffer specified in optical_param_buff. Ignored if optical_param_buff is NULL. </td></tr>
    <tr><td class="paramname">fovy_p</td><td>Pointer to an ARdouble, which will be filled with the field-of-view (Y axis) component of the optical parameters. </td></tr>
    <tr><td class="paramname">aspect_p</td><td>Pointer to an ARdouble, which will be filled with the aspect ratio (width / height) component of the optical parameters. </td></tr>
    <tr><td class="paramname">m</td><td>Pointer to an array of 16 ARdoubles, which will be filled with the transformation matrix component of the optical parameters. Note that the position vector (m[12], m[13], m[14]) will be scaled by the viewScale value supplued in <a class="el" href="class_a_r_controller.html#a418d8aaf7e0561d1ccfffc7d35a840cf" title="Start video capture and marker detection.">startRunning()</a>. </td></tr>
    <tr><td class="paramname">p</td><td>(Optional) May be NULL, or a pointer to an array of 16 ARdoubles, which will be filled with the perspective matrix calculated from fovy and aspect combined with the near and far projection values supplied in <a class="el" href="class_a_r_controller.html#a418d8aaf7e0561d1ccfffc7d35a840cf" title="Start video capture and marker detection.">startRunning()</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a33e443e6b1d71770bcc2ed22f907bf54"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::logv </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>logLevel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ae455f8a676ce0492c396d955ee7a108f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::logv </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If a log callback has been set, then this passes the formatted message to it. </p>
<p>If no log callback has been set, then the message is discarded. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>The message to output. Follows the same formatting rules as printf(). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a290ba1cd38c6a7e38104af03cfe33c88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ARdouble ARController::projectionFarPlane </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6107f783d52887d655bd571ac906421c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ARdouble ARController::projectionNearPlane </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="adcb3dddd6987c1c774ab2a8f3d2b50db"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ARController::removeAllMarkers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clears the collection of markers. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of markers removed </dd></dl>

</div>
</div>
<a class="anchor" id="a837c8cac6b5f8998d5d91bb9ebc12555"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::removeMarker </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>UID</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes the marker with the given ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">UID</td><td>The UID of the marker to remove </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the marker was removed, false if an error occurred. </dd></dl>

</div>
</div>
<a class="anchor" id="a4287d63e3291a4bf0d6a24387895ea2d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setDebugMode </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>debug</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables or disables debug mode in the tracker. </p>
<p>When enabled, a black and white debug image is generated during marker detection. The debug image is useful for visualising the binarization process and choosing a threshold value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">debug</td><td>true to enable debug mode, false to disable debug mode </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#ac385b8f5be31e172a34e9aef3f3ac82a" title="Returns whether debug mode is currently enabled.">getDebugMode()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab80ab5239c37941427bcc51e382af178"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setImageProcMode </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ae6ce742333a35487de8fa2a8ae5e507f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setLabelingMode </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the labeling mode to use. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mode</td><td>The new labeling mode to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#a9fa24578408ae5a2d1b4cb215b5c5c32" title="Returns the current labeling mode.">getLabelingMode()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a38ae06d947f7995156bcb30155d01d29"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setMatrixCodeType </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="abceb36df8bacdaceaab8b234a3c56f29"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setNFTMultiMode </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>on</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aa25c5bef4b35ea189b1c5b3d82a48812"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setPatternDetectionMode </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ad346222158ad690f071420d5fe1b5e4a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setPattRatio </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>ratio</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a15aa6c50cd138d4131bbed2517498927"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setProjectionFarPlane </td>
          <td>(</td>
          <td class="paramtype">const ARdouble&#160;</td>
          <td class="paramname"><em>projectionFarPlane</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ab63641c43919f8297ba38a0ee9ce3253"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setProjectionNearPlane </td>
          <td>(</td>
          <td class="paramtype">const ARdouble&#160;</td>
          <td class="paramname"><em>projectionNearPlane</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a2c20dfcb712449a58bdc71c50b5ab63b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setThreshold </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>thresh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the threshold value used for image binarization. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">thresh</td><td>The new threshold value to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#a7106f4c7c2d4e4691900fdf2dd4a7dd6" title="Returns the current threshold value used for image binarization.">getThreshold()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9b18e16d0c7d694b495614a332c9ae9e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ARController::setThresholdMode </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the thresholding mode to use. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mode</td><td>The new thresholding mode to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_a_r_controller.html#ac873cfc23a294a6ae6d339c946391e36" title="Returns the current thresholding mode.">getThresholdMode()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ac3aad1d57eb54ef10ecdd57562fad461"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::shutdown </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stop, if running. </p>
<p>Remove all markers, clean up all memory. Starting again from this state requires <a class="el" href="class_a_r_controller.html#a3285a4ebb27a47d45d64428969e30ea4" title="Start marker management so markers can be added and removed.">initialiseBase()</a> to be called again. </p>
<dl class="section return"><dt>Returns</dt><dd>true if shutdown was successful, otherwise false </dd></dl>

</div>
</div>
<a class="anchor" id="a418d8aaf7e0561d1ccfffc7d35a840cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::startRunning </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vconf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>cparaBuffLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start video capture and marker detection. </p>
<p>(AR/NFT initialisation will begin on a subsequent call to <a class="el" href="class_a_r_controller.html#ac726b34aac45206f4608e9a15875db82" title="Performs marker detection and updates all markers.">update()</a>.) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vconf</td><td>Video configuration string. </td></tr>
    <tr><td class="paramname">cparaName</td><td>Camera parameters filename, or NULL if camera parameters file not being used. </td></tr>
    <tr><td class="paramname">cparaBuff</td><td>A byte-buffer containing contents of a camera parameters file, or NULL if a camera parameters file is being used. </td></tr>
    <tr><td class="paramname">cparaBuffLen</td><td>Length (in bytes) of cparaBuffLen, or 0 if a camera parameters file is being used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if video capture and marker detection was started, otherwise false. </dd></dl>

</div>
</div>
<a class="anchor" id="abd0732b11285bc113134d1b891a361f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::startRunningStereo </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vconfL</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaNameL</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaBuffL</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>cparaBuffLenL</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vconfR</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaNameR</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaBuffR</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>cparaBuffLenR</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>transL2RName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>transL2RBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>transL2RBuffLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start stereo video capture and marker detection. </p>
<p>(AR/NFT initialisation will begin on a subsequent call to <a class="el" href="class_a_r_controller.html#ac726b34aac45206f4608e9a15875db82" title="Performs marker detection and updates all markers.">update()</a>.) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vconfL</td><td>Video configuration string for the "left" video source. </td></tr>
    <tr><td class="paramname">cparaNameL</td><td>Camera parameters filename for the "left" video source, or NULL if camera parameters file not being used. </td></tr>
    <tr><td class="paramname">cparaBuffL</td><td>A byte-buffer containing contents of a camera parameters file for the "left" video source, or NULL if a camera parameters file is being used. </td></tr>
    <tr><td class="paramname">cparaBuffLenL</td><td>Length (in bytes) of cparaBuffLenL, or 0 if a camera parameters file is being used. </td></tr>
    <tr><td class="paramname">vconfR</td><td>Video configuration string for the "right" video source. </td></tr>
    <tr><td class="paramname">cparaNameR</td><td>Camera parameters filename for the "right" video source, or NULL if camera parameters file not being used. </td></tr>
    <tr><td class="paramname">cparaBuffR</td><td>A byte-buffer containing contents of a camera parameters file for the "right" video source, or NULL if a camera parameters file is being used. </td></tr>
    <tr><td class="paramname">cparaBuffLenR</td><td>Length (in bytes) of cparaBuffLenR, or 0 if a camera parameters file is being used. </td></tr>
    <tr><td class="paramname">transL2RName</td><td>Stereo calibration filename, or NULL if stereo calibration file not being used. </td></tr>
    <tr><td class="paramname">transL2RBuff</td><td>A byte-buffer containing contents of a stereo calibration file, or NULL if a stereo calibration file is being used. </td></tr>
    <tr><td class="paramname">transL2RBuffLen</td><td>Length (in bytes) of transL2RBuff, or 0 if a stereo calibration file is being used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if video capture and marker detection was started, otherwise false. </dd></dl>

</div>
</div>
<a class="anchor" id="a889dbbe581e771d1f4f2e28fad3f686b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::stopRunning </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Video capture and marker detection stops, but markers are still valid and can be configured. </p>
<dl class="section return"><dt>Returns</dt><dd>true if video capture and marker detection was stopped, otherwise false. </dd></dl>

</div>
</div>
<a class="anchor" id="ac726b34aac45206f4608e9a15875db82"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::update </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs marker detection and updates all markers. </p>
<p>The latest frame from the current video source is retrieved and analysed. Each marker in the collection is updated with new tracking information. The marker info array is iterated over, and detected markers are matched up with those in the marker collection. Each matched marker is updated with visibility and transformation information. Any markers not detected are considered not currently visible.</p>
<dl class="section return"><dt>Returns</dt><dd>true if update completed successfully, false if an error occurred </dd></dl>

</div>
</div>
<a class="anchor" id="a8278aebc7233d808ce3742462fa4da71"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::updateDebugTexture </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_color.html">Color</a> *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Populates the provided color buffer with the current contents of the debug image. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">buffer</td><td>Pointer to a buffer of pixels (of type '<a class="el" href="struct_color.html" title="Simple color representation using four float values.">Color</a>') to be filled. It is the caller's responsibility to ensure that the buffer is of sufficient size. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, false if an error occurred </dd></dl>

</div>
</div>
<a class="anchor" id="a6bc7b12b0b3fa9a1ee1fa638abe21030"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::updateDebugTexture32 </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Populates the provided buffer with the current contents of the debug image. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">buffer</td><td>Pointer to a buffer of pixels (of type 'uint32_t') to be filled. It is the caller's responsibility to ensure that the buffer is of sufficient size. The pixels are RGBA in little-endian systems, or ABGR in big-endian systems. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3a39007194f7a2dd42e81f393cf588d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::updateTexture </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_color.html">Color</a> *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Asks the video source to push the most recent frame into the passed-in buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">buffer</td><td>Pointer to a buffer of pixels (of type '<a class="el" href="struct_color.html" title="Simple color representation using four float values.">Color</a>') to be filled. It is the caller's responsibility to ensure that the buffer is of sufficient size. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac580d4ef4f76a38b6dd06322ae645e34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::updateTexture32 </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Asks the video source to push the most recent frame into the passed-in buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">buffer</td><td>Pointer to a buffer of pixels (of type 'uint32_t') to be filled. It is the caller's responsibility to ensure that the buffer is of sufficient size. The pixels are RGBA in little-endian systems, or ABGR in big-endian systems. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5d6c658c56c5c839a77e03dd85f1e2d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::updateTextureGL </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>textureID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Asks the video source to push the most recent frame into the OpenGL texture with the passed-in ID/name. </p>
<p>Must be called on a thread with a valid OpenGL context and a valid OpenGL 2D texture with the given ID/name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">textureID</td><td>OpenGL texture ID/name of the initialised texture to push the video frame to. It is the caller's responsibility to ensure that the texture is valid and of correct size and format. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af395f42727daace4e25f3e26a1d77c33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::videoAcceptImage </td>
          <td>(</td>
          <td class="paramtype">JNIEnv *&#160;</td>
          <td class="paramname"><em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jobject&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jbyteArray&#160;</td>
          <td class="paramname"><em>pinArray</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jint&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jint&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jint&#160;</td>
          <td class="paramname"><em>cameraIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jboolean&#160;</td>
          <td class="paramname"><em>cameraIsFrontFacing</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ae504ee5e5ac8dea6f044f7f96f472cdb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ARController::videoParameters </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>videoSourceIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AR_PIXEL_FORMAT *&#160;</td>
          <td class="paramname"><em>pixelFormat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reports width, height and pixel format of a video source. </p>
<p>To retrieve the size (in bytes) of each pixel, use arUtilGetPixelSize(*pixelFormat); To get a C-string with the name of the pixel format, use arUtilGetPixelFormatName(*pixelFormat); </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSourceIndex</td><td>Index into an array of video sources, specifying which source should be queried. </td></tr>
    <tr><td class="paramname">width</td><td>Pointer to an int which will be filled with the width (in pixels) of the video frame, or NULL if this information is not required. </td></tr>
    <tr><td class="paramname">height</td><td>Pointer to an int which will be filled with the height (in pixels) of the video frame, or NULL if this information is not required. </td></tr>
    <tr><td class="paramname">pixelFormat</td><td>Pointer to an AR_PIXEL_FORMAT which will be filled with the pixel format of the video frame, or NULL if this information is not required. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the video source(s) is/are open and returning frames, otherwise false. </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a54f0849f06076cd96311c48f25c2b58b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_platform_8h.html#a4d175bf9baf646649f851fc1508bb4ef">PFN_LOGCALLBACK</a> ARController::logCallback = NULL</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Callback where log messages are passed to. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/ARWrapper/<a class="el" href="_a_r_controller_8h_source.html">ARController.h</a></li>
<li>lib/SRC/ARWrapper/<a class="el" href="_a_r_controller_8cpp.html">ARController.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 23 2016 17:24:25 for ARWrapper by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>
